iT邦幫忙

2023 iThome 鐵人賽

DAY 24
0

前面介紹了介面和抽象類別,是不是覺得兩者很像有點分不太出來什麼時候要用哪一個呢?

今天就幫大家整理這兩種類別相似及相異之處吧

介面 抽象類別
不能被實例化
抽象方法
預設方法
普通方法
靜態方法
靜態常數
普通變數
建構子
初始化區域

介面和抽象類別之間的差別非常大,這種差別主要體現在二者設計目的。下面具體分析二者的差别:
介面

作為系統與外界交互的視窗,介面體現的是一種規範

對於介面的實作者而言:介面規定了實作者必須向外提供哪些服務(以方法的形式來提供)

對於介面的呼叫者而言:介面規定了呼叫者可以呼叫哪些服務,以及如何呼叫這些服務 (就是如
何來呼叫方法)。

當在一個程式中使用介面時,介面是多個模組間的耦合標準;

當在多個應用程式之間使用介面時,介面是多個程式之間的通訊標準。
從某種程度上來看,介面類似於整個系統的 「總綱」,它制定了系統各模組應該遵循的標準,因此一個系統中的介面不應該經常改變。一旦介面被改變,對整個系統甚至其他系統的影響將是輻射式的,導致系統中大部分類別都需要改寫。
抽象類別

抽象類別作為系統中多個子類別的共同父類別,它所體現的是一種範本式設計。抽象類别作為多個子類別的抽象父類别,可以被當成系統實作過程中的中間產品,這個中間產品已經實作了系統的部分功能(那些己經提供實作的方法),但這個產品依然不能當成最終產品,必須有更進一步的完善。


上一篇
Day 23 其他類 III
下一篇
Day 25 內部類 I
系列文
玩轉Java:從基礎打造你的程式超能力30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言